package com.eastfair.venuebooking.vo;

import cn.afterturn.easypoi.excel.annotation.Excel;
import com.baomidou.mybatisplus.annotation.TableField;
import io.swagger.annotations.ApiModelProperty;
import lombok.*;
import lombok.experimental.Accessors;

import javax.validation.constraints.Size;
import java.io.Serializable;
import java.time.LocalDateTime;
import java.util.HashMap;
import java.util.Map;

import static com.baomidou.mybatisplus.annotation.SqlCondition.LIKE;
import static com.eastfair.core.utils.DateUtils.DEFAULT_DATE_TIME_FORMAT;

/**
 * <p>
 * vo
 * 价目表
 * </p>
 *
 * @author lyw
 * @since 2022-06-016
 */
@Data
@NoArgsConstructor
@AllArgsConstructor
@Accessors(chain = true)
@ToString(callSuper = true)
@EqualsAndHashCode(callSuper = false)
@Builder
public class PriceListVO implements Serializable {

    private Map<String, Object> echoMap = new HashMap<>();

    private  Long id;


    /**
     * 价目名称
     */
    @ApiModelProperty(value = "价目名称")
    @Size(max = 20, message = "价目名称长度不能超过20")
    @TableField(value = "price_list_name", condition = LIKE)
    @Excel(name = "价目名称")
    private String priceListName;

    /**
     * 第一次生效时间
     */
    @ApiModelProperty(value = "第一次生效时间")
    @TableField(value = "valid_begin_time")
    @Excel(name = "第一次生效时间", format = DEFAULT_DATE_TIME_FORMAT, width = 20)
    private LocalDateTime validBeginTime;

    /**
     * 第一次失效时间
     */
    @ApiModelProperty(value = "第一次失效时间")
    @TableField(value = "valid_end_time")
    @Excel(name = "第一次失效时间", format = DEFAULT_DATE_TIME_FORMAT, width = 20)
    private LocalDateTime validEndTime;

    /**
     * 备注
     */
    @ApiModelProperty(value = "备注")
    @Size(max = 255, message = "备注长度不能超过255")
    @TableField(value = "remark", condition = LIKE)
    @Excel(name = "备注")
    private String remark;

    /**
     * 是否每年  1 是  0否      如是   需截取第一次生效时间 月日和第一次失效时间 的月日做区间比较
     */
    @ApiModelProperty(value = "是否每年  1 是  0否      如是   需截取第一次生效时间 月日和第一次失效时间 的月日做区间比较")
    @TableField(value = "is_every_year")
    @Excel(name = "是否每年  1 是  0否      如是   需截取第一次生效时间 月日和第一次失效时间 的月日做区间比较", replace = {"是_true", "否_false", "_null"})
    private Integer isEveryYear;

    /**
     * 场地名称"/"隔开
     */
    @ApiModelProperty(value = "场地名称\"/\"隔开")
    @Size(max = 500, message = "场地名称\"/\"隔开长度不能超过500")
    @TableField(value = "space_names", condition = LIKE)
    @Excel(name = "场地名称\"/\"隔开")
    private String spaceNames;

    @ApiModelProperty(value = "每年标识")
    private String everyYear;


    /**
     * 计价单位编码
     */
    @ApiModelProperty(value = "计价单位编码")
    @Size(max = 255, message = "计价单位编码长度不能超过255")
    @TableField(value = "unit_code", condition = LIKE)
    @Excel(name = "计价单位编码")
    private String unitCode;

    private  String beginTimeStr;
    private  String endTimeStr;
    @ApiModelProperty(value = "创建时间")
    private LocalDateTime createTime;







}
